{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 运行版本"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'3.8.13 (default, Mar 28 2022, 06:59:08) [MSC v.1916 64 bit (AMD64)]'"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sys\n",
    "\n",
    "sys.version"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'2.6.0'"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import tensorflow\n",
    "\n",
    "tensorflow.__version__"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# !python -m deepxde.backend.set_default_backend tensorflow.compat.v1\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using backend: tensorflow.compat.v1\n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From G:\\Anaconda3\\envs\\py3.8\\lib\\site-packages\\tensorflow\\python\\compat\\v2_compat.py:101: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "non-resource variables are not supported in the long term\n",
      "WARNING:tensorflow:From G:\\Anaconda3\\envs\\py3.8\\lib\\site-packages\\deepxde\\nn\\initializers.py:118: The name tf.keras.initializers.he_normal is deprecated. Please use tf.compat.v1.keras.initializers.he_normal instead.\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'1.1.3'"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import deepxde\n",
    "\n",
    "deepxde.__version__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4 Wave Equation\n",
    "\n",
    "下面我们讨论波动方程 $$\\large u_{tt}-\\Delta u = 0, \\tag{4.1}$$ \n",
    "\n",
    "和非齐次形式 $$\\large u_{tt}-\\Delta u = f,\\tag{4.2}$$ \n",
    "\n",
    "的解, 其中给定一定的初始和边界条件. 这里 $t>0,x\\in U,U\\subset \\mathbb{R}^n$。要解的东西是 $\\large u:\\bar{U} \\times[0,\\infty) \\to \\mathbb{R}, u = u(x,t)$。这里拉普拉斯算子是关于空间变量 $x = (x_1,\\cdots,x_n)$ 的。另外 $f:U \\times[0,\\infty) \\to \\mathbb{R}$ 给定. 通常我们也记 $\\Box u := u_{tt} - \\Delta u$。\n",
    "\n",
    "\n",
    "\n",
    "### 4.1 1维情形: d'Alembert公式\n",
    "\n",
    "**定理1.1 [d'Alembert公式] [一维波动方程的解]** 设 $\\large g \\in C^2(\\mathbb{R}), h \\in C^1(\\mathbb{R})$，定义\n",
    "\n",
    "$\\large u(x,t) = \\frac{1}{2} [g(x+t)+g(x-t)] + \\frac{1}{2} \\int^{x+t}_{x-t}h(y)dy, \\tag{4.3}$ \n",
    "\n",
    "则：\n",
    "\n",
    "（1） $\\large u\\in C^2(\\mathbb{R} \\times [0,\\infty))$，\n",
    "\n",
    "（2）$\\large u_{tt} - u_{xx} = 0, (x,t) \\in \\mathbb{R}\\times (0,\\infty)$，\n",
    "\n",
    "（3）$\\large \\lim_{(x,t)\\to (x^0,0^+)} u(x,t) = g(x^0), \\lim_{(x,t)\\to (x^0,0)} u_t(x,t) = h(x^0), \\forall x^0 \\in \\mathbb{R}$。\n",
    "\n",
    "\n",
    "\n",
    "### 4.2 3维情形: Kirchhoff公式\n",
    "\n",
    "对 $x\\in \\mathbb{R}^3, t>0,$ \n",
    "$$\n",
    "\\large\n",
    "\\begin{align*}\n",
    "u(x,t) &= \\frac{1}{n\\alpha(n)t^{n-1}} \\int_{\\partial B(x,t)} th(y)+g(y)+Dg(y)\\cdot (y-x)dS(y)。\\\\\n",
    "\\tag{4.4}\n",
    "\\end{align*}\n",
    "$$\n",
    "这就是三维情形的**Kirchhoff公式**。\n",
    "\n",
    "### 4.3 2维情形: Poisson公式\n",
    "\n",
    "对 $x\\in \\mathbb{R}^2, t>0,$ \n",
    "$$\n",
    "\\large\n",
    "\\begin{align*}\n",
    "u(x,t) &= \\frac{1}{2\\pi t} \\int_{B(x,t)} \\frac{g(y)+th(y)+Dg(y)\\cdot (y-x)}{(t^2-|y-x|^2)^{1/2}} dy,\\\\\n",
    "\\tag{4.5}\n",
    "\\end{align*}\n",
    "$$\n",
    "这就是二维情形下的Poisson公式。\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 问题设置\n",
    "我们考虑一维波动方程的形式:\n",
    "$$\n",
    "\\large\n",
    "\\begin{aligned}\n",
    "&u_{tt}(x,t)-100u_{xx}(x,t)=0,(x,t)∈(0,1)\\times(0,1), \\\\ \n",
    "&u(0,t)=u(1,t)=0, t∈[0,1],\\\\\n",
    "&u(x,0)=\\sin(\\pi x)+\\sin(2\\pi x), x∈[0,1],\\\\\n",
    "&u_t(x,0)=0, x∈[0,1],\\\\\n",
    "\\end{aligned}\n",
    "\\tag{4.6}\n",
    "$$\n",
    "使用d'Alembert公式求得方程的解是 $$\\large u(x,t)=\\sin(πx)\\cos(10πt)+\\sin(2πx)\\cos(20πt).$$  \n",
    "\n",
    "mathematica求解代码\n",
    "\n",
    "```mathematica\n",
    "WaveEquation = D[u[x, t], {t, 2}] - 100*D[u[x, t], {x, 2}] == 0;\n",
    "bc = {u[0, t] == 0, u[1, t] == 0};\n",
    "ic = {u[x, 0] == Sin[Pi * x] + Sin[2*Pi*x], \n",
    "   Derivative[0, 1][u][x, 0] == 0};\n",
    "\n",
    "sol = DSolve[{WaveEquation, bc, ic}, u[x, t], {x, t}]\n",
    "(*{{u[x, t] -> (Cos[10 \\[Pi] t] + 2 Cos[20 \\[Pi] t] Cos[\\[Pi] x]) Sin[\\[Pi] x]}}*)\n",
    "```\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 代码来源\n",
    "https://github.com/lululxvi/deepxde/blob/master/examples/pinn_forward/wave_1d.py\n",
    "\n",
    "https://github.com/PredictiveIntelligenceLab/MultiscalePINNs/blob/main/wave1D/wave1D.py"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using backend: tensorflow.compat.v1\n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From G:\\Anaconda3\\envs\\py3.8\\lib\\site-packages\\tensorflow\\python\\compat\\v2_compat.py:101: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "non-resource variables are not supported in the long term\n",
      "WARNING:tensorflow:From G:\\Anaconda3\\envs\\py3.8\\lib\\site-packages\\deepxde\\nn\\initializers.py:118: The name tf.keras.initializers.he_normal is deprecated. Please use tf.compat.v1.keras.initializers.he_normal instead.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "\"\"\"Backend supported: tensorflow.compat.v1\n",
    "Implementation of the wave propagation example in paper https://arxiv.org/abs/2012.10047.\n",
    "References:\n",
    "    https://github.com/PredictiveIntelligenceLab/MultiscalePINNs.\n",
    "\"\"\"\n",
    "import deepxde as dde\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "波动方程\n",
    "\n",
    "$\\large u_{tt}(x,t)-100u_{xx}(x,t)=0,(x,t)∈(0,1)\\times(0,1)$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "C = 10\n",
    "\n",
    "def pde(x, y):\n",
    "    dy_tt = dde.grad.hessian(y, x, i=1, j=1)\n",
    "    dy_xx = dde.grad.hessian(y, x, i=0, j=0)\n",
    "    return dy_tt - C ** 2 * dy_xx\n",
    "\n",
    "geom = dde.geometry.Interval(0, 1)\n",
    "timedomain = dde.geometry.TimeDomain(0, 1)\n",
    "geomtime = dde.geometry.GeometryXTime(geom, timedomain)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "边界、初始条件：\n",
    "\n",
    "bc: $\\large u(0,t)=u(1,t)=0, t∈[0,1],$\n",
    "\n",
    "ic_1: $\\large u(x,0)=\\sin(\\pi x)+\\sin(2\\pi x), x∈[0,1],$\n",
    "\n",
    "ic_2: $\\large u_t(x,0)=0, x∈[0,1],$\n",
    "\n",
    "方程的解：\n",
    "\n",
    "func: $\\large u(x,t)=\\sin(πx)\\cos(10πt)+\\sin(2πx)\\cos(20πt).$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "G:\\Anaconda3\\envs\\py3.8\\lib\\site-packages\\skopt\\sampler\\sobol.py:246: UserWarning: The balance properties of Sobol' points require n to be a power of 2. 0 points have been previously generated, then: n=0+362=362. \n",
      "  warnings.warn(\"The balance properties of Sobol' points require \"\n"
     ]
    }
   ],
   "source": [
    "A = 2\n",
    "\n",
    "def func(x):\n",
    "    x, t = np.split(x, 2, axis=1)\n",
    "    return np.sin(np.pi * x) * np.cos(C * np.pi * t) +\\\n",
    "            np.sin(A * np.pi * x) * np.cos(A * C * np.pi * t)\n",
    "\n",
    "bc = dde.icbc.DirichletBC(geomtime, func, lambda _, on_boundary: on_boundary)\n",
    "ic_1 = dde.icbc.IC(geomtime, func, lambda _, on_initial: on_initial)\n",
    "# do not use dde.NeumannBC here, since `normal_derivative` does not work with temporal coordinate.\n",
    "ic_2 = dde.icbc.OperatorBC(\n",
    "    geomtime,\n",
    "    lambda x, y, _: dde.grad.jacobian(y, x, i=0, j=1),\n",
    "    lambda x, _: np.isclose(x[1], 0),\n",
    ")\n",
    "data = dde.data.TimePDE(\n",
    "    geomtime,\n",
    "    pde,\n",
    "    [bc, ic_1, ic_2],\n",
    "    num_domain=360,\n",
    "    num_boundary=360,\n",
    "    num_initial=360,\n",
    "    solution=func,\n",
    "    num_test=10000,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "model\n",
    "\n",
    "如果发生错误：\n",
    "AttributeError: module 'deepxde.nn.tensorflow' has no attribute 'STMsFFN'\n",
    "\n",
    "把deepxde后端换成tensorflow_compat_v1\n",
    "\n",
    "https://deepxde.readthedocs.io/en/latest/modules/deepxde.nn.tensorflow_compat_v1.html#deepxde.nn.tensorflow_compat_v1.msffn.STMsFFN"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "layer_size = [2] + [100] * 3 + [1]\n",
    "activation = \"tanh\"\n",
    "initializer = \"Glorot uniform\"\n",
    "net = dde.nn.STMsFFN(\n",
    "    layer_size, activation, initializer, sigmas_x=[1], sigmas_t=[1, 10]\n",
    ")\n",
    "net.apply_feature_transform(lambda x: (x - 0.5) * 2 * np.sqrt(3))\n",
    "\n",
    "model = dde.Model(data, net)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "compile"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Compiling model...\n",
      "Building Spatio-temporal Multi-scale Fourier Feature Network...\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "G:\\Anaconda3\\envs\\py3.8\\lib\\site-packages\\keras\\legacy_tf_layers\\core.py:236: UserWarning: `tf.layers.dense` is deprecated and will be removed in a future version. Please use `tf.keras.layers.Dense` instead.\n",
      "  warnings.warn('`tf.layers.dense` is deprecated and '\n",
      "G:\\Anaconda3\\envs\\py3.8\\lib\\site-packages\\keras\\engine\\base_layer_v1.py:1676: UserWarning: `layer.apply` is deprecated and will be removed in a future version. Please use `layer.__call__` method instead.\n",
      "  warnings.warn('`layer.apply` is deprecated and '\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "'compile' took 3.664090 s\n",
      "\n",
      "Initializing variables...\n",
      "Training model...\n",
      "\n",
      "Step      Train loss                                  Test loss                                   Test metric   \n",
      "0         [4.99e+05, 7.72e-02, 6.54e-01, 1.87e+01]    [6.58e+05, 7.72e-02, 6.54e-01, 1.87e+01]    [1.05e+00]    \n",
      "\n",
      "Best model at step 0:\n",
      "  train loss: 4.99e+05\n",
      "  test loss: 6.58e+05\n",
      "  test metric: [1.05e+00]\n",
      "\n",
      "'train' took 0.814490 s\n",
      "\n",
      "Compiling model...\n",
      "'compile' took 1.414812 s\n",
      "\n"
     ]
    }
   ],
   "source": [
    "def get_initial_loss(model):\n",
    "    model.compile(\"adam\", lr=0.001, metrics=[\"l2 relative error\"])\n",
    "    losshistory, train_state = model.train(0)\n",
    "    return losshistory.loss_train[0]\n",
    "\n",
    "initial_losses = get_initial_loss(model)\n",
    "loss_weights = 5 / initial_losses\n",
    "model.compile(\n",
    "    \"adam\",\n",
    "    lr=0.001,\n",
    "    metrics=[\"l2 relative error\"],\n",
    "    loss_weights=loss_weights,\n",
    "    decay=(\"inverse time\", 2000, 0.9),\n",
    ")\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "model.train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Initializing variables...\n",
      "Training model...\n",
      "\n",
      "Step      Train loss                                  Test loss                                   Test metric   \n",
      "0         [3.97e+00, 1.98e+00, 5.89e+00, 2.51e+00]    [4.18e+00, 1.98e+00, 5.89e+00, 2.51e+00]    [1.02e+00]    \n",
      "500       [6.48e-02, 5.62e-03, 1.49e-03, 4.54e-04]    [1.75e-01, 5.62e-03, 1.49e-03, 4.54e-04]    [7.95e-01]    \n",
      "1000      [2.86e-02, 3.05e-03, 3.48e-04, 3.56e-03]    [7.73e-02, 3.05e-03, 3.48e-04, 3.56e-03]    [7.13e-01]    \n",
      "1500      [1.56e-02, 2.22e-03, 1.82e-04, 1.07e-03]    [5.26e-02, 2.22e-03, 1.82e-04, 1.07e-03]    [6.47e-01]    \n",
      "2000      [1.41e-02, 1.67e-03, 5.99e-05, 5.11e-04]    [4.10e-02, 1.67e-03, 5.99e-05, 5.11e-04]    [5.84e-01]    \n",
      "2500      [1.02e-02, 1.33e-03, 5.52e-05, 8.89e-04]    [3.19e-02, 1.33e-03, 5.52e-05, 8.89e-04]    [5.25e-01]    \n",
      "3000      [9.11e-03, 9.81e-04, 3.69e-05, 1.02e-04]    [2.49e-02, 9.81e-04, 3.69e-05, 1.02e-04]    [4.64e-01]    \n",
      "3500      [6.27e-03, 7.61e-04, 1.41e-05, 6.97e-05]    [1.91e-02, 7.61e-04, 1.41e-05, 6.97e-05]    [4.07e-01]    \n",
      "4000      [4.36e-03, 5.68e-04, 2.58e-05, 1.38e-03]    [1.44e-02, 5.68e-04, 2.58e-05, 1.38e-03]    [3.51e-01]    \n",
      "4500      [3.58e-03, 4.83e-04, 1.53e-05, 1.60e-04]    [1.07e-02, 4.83e-04, 1.53e-05, 1.60e-04]    [3.00e-01]    \n",
      "5000      [2.62e-03, 2.53e-04, 4.55e-06, 6.51e-05]    [8.10e-03, 2.53e-04, 4.55e-06, 6.51e-05]    [2.52e-01]    \n",
      "5500      [1.88e-03, 2.09e-04, 1.64e-05, 5.64e-03]    [5.82e-03, 2.09e-04, 1.64e-05, 5.64e-03]    [2.12e-01]    \n",
      "6000      [1.45e-03, 1.48e-04, 1.48e-05, 4.79e-05]    [4.40e-03, 1.48e-04, 1.48e-05, 4.79e-05]    [1.77e-01]    \n",
      "6500      [1.11e-03, 1.20e-04, 4.43e-06, 1.32e-04]    [3.44e-03, 1.20e-04, 4.43e-06, 1.32e-04]    [1.47e-01]    \n",
      "7000      [9.04e-04, 7.46e-05, 5.30e-06, 8.44e-06]    [2.67e-03, 7.46e-05, 5.30e-06, 8.44e-06]    [1.23e-01]    \n",
      "7500      [6.82e-04, 7.01e-05, 2.20e-06, 1.91e-04]    [2.16e-03, 7.01e-05, 2.20e-06, 1.91e-04]    [1.03e-01]    \n",
      "8000      [6.69e-04, 5.62e-05, 1.32e-05, 1.05e-04]    [1.71e-03, 5.62e-05, 1.32e-05, 1.05e-04]    [8.58e-02]    \n",
      "8500      [5.18e-04, 4.62e-05, 3.13e-06, 1.19e-04]    [1.50e-03, 4.62e-05, 3.13e-06, 1.19e-04]    [7.22e-02]    \n",
      "9000      [3.96e-04, 2.99e-05, 6.05e-06, 8.17e-05]    [1.21e-03, 2.99e-05, 6.05e-06, 8.17e-05]    [6.07e-02]    \n",
      "9500      [4.08e-04, 3.31e-05, 2.13e-06, 7.44e-04]    [1.12e-03, 3.31e-05, 2.13e-06, 7.44e-04]    [5.13e-02]    \n",
      "10000     [3.91e-04, 2.96e-05, 4.70e-06, 8.99e-06]    [9.70e-04, 2.96e-05, 4.70e-06, 8.99e-06]    [4.37e-02]    \n",
      "\n",
      "Best model at step 10000:\n",
      "  train loss: 4.34e-04\n",
      "  test loss: 1.01e-03\n",
      "  test metric: [4.37e-02]\n",
      "\n",
      "'train' took 444.102006 s\n",
      "\n"
     ]
    }
   ],
   "source": [
    "pde_residual_resampler = dde.callbacks.PDEResidualResampler(period=1)\n",
    "losshistory, train_state = model.train(\n",
    "    epochs=10000, callbacks=[pde_residual_resampler], display_every=500\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "saveplot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving loss history to E:\\noetbook\\毕业论文\\loss.dat ...\n",
      "Saving training data to E:\\noetbook\\毕业论文\\train.dat ...\n",
      "Saving test data to E:\\noetbook\\毕业论文\\test.dat ...\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAEGCAYAAACJnEVTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA02ElEQVR4nO3dd3hc1Zn48e8radR7tyXLssFdtmUj22CaKQYDoW6IaQEvYbNkf0DKJpRk00hns4QQsmFJME4jONQQTHBiwGAH4gYOuFfZlmR1aVRGbUbn98e9MxrJkouk0cgz7+d57jN37txyjgzve+89954jxhiUUkqFh4hgF0AppdTI0aCvlFJhRIO+UkqFEQ36SikVRjToK6VUGIkKdgGOJzMz0xQWFga7GEopddrYsmVLrTEma6DfR3XQLywsZPPmzcEuhlJKnTZE5NDxftfbO0opFUZG7ExfRCKA7wDJwGZjzK9H6thKKaUsQzrTF5HlIlItItv6LF8iIrtFZJ+IPGgvvhbIA7qAsqEcVyml1OAM9Ux/BfAE8BvvAhGJBH4OLMYK7ptE5FVgCvC+Meb/ROQF4M0hHlspNUp1dXVRVlZGe3t7sIsSsmJjY8nPz8fhcJzSdkMK+saYd0WksM/i+cA+Y8wBABF5Duss/wjQaa/jGWifIvJZ4LMABQUFQymeUipIysrKSEpKorCwEBEJdnFCjjGGuro6ysrKmDBhwiltG4iG3DysAO9VZi97CbhcRH4GvDvQxsaYp4wxJcaYkqysAZ86UkqNYu3t7WRkZGjADxARISMjY1BXUoFoyO3vX9kYY1zAZwJwPKXUKKQBP7AG+/cNxJl+GTDO73s+UBGA4wzsnf+GvWtG9JBKKXU6CETQ3wRMEpEJIhIN3AS8GoDjDOzvj8GBt0f0kEqp0aOuro7i4mKKi4vJzc0lLy/P972zs/O4227evJn77rvvlI5XWFhIbW3tUIo8YoZ0e0dE/gAsAjJFpAz4pjHmaRG5B1gNRALLjTHbh1xSpZQ6SRkZGWzduhWAb33rWyQmJvLlL3/Z97vb7SYqqv/wV1JSQklJyUgUMyiGdKZvjLnZGDPGGOMwxuQbY562l79ujJlsjDnDGPO94SnqyWvtdLO5tH6kD6uUGsWWLVvGl770JS666CIeeOABNm7cyMKFC5kzZw4LFy5k9+7dAKxdu5ZPfOITgJUw7rzzThYtWsTEiRN5/PHHT3icRx99lKKiIoqKinjssccAaG1t5aqrrmL27NkUFRWxcuVKAB588EGmT5/OrFmzeiWlQBrVfe8MmgF3tw4DqdRo8O0/b2dHRdOw7nP62GS+efWMU95uz549rFmzhsjISJqamnj33XeJiopizZo1fPWrX+XFF188Zptdu3bx9ttv09zczJQpU/jc5z434LPxW7Zs4ZlnnmHDhg0YY1iwYAEXXnghBw4cYOzYsaxatQoAp9NJfX09L7/8Mrt27UJEaGxsPOX6DIb2vaOUChs33ngjkZGRgBV4b7zxRoqKivjiF7/I9u3934W+6qqriImJITMzk+zsbKqqqgbc//r167n++utJSEggMTGRG264gXXr1jFz5kzWrFnDAw88wLp160hJSSE5OZnY2FjuuusuXnrpJeLj4wNS575C80xfKTVqDOaMPFASEhJ881//+te56KKLePnllyktLWXRokX9bhMTE+Obj4yMxO12D7h/Y/q/wzB58mS2bNnC66+/zkMPPcRll13GN77xDTZu3Mibb77Jc889xxNPPMFbb701uIqdAj3TV0qFJafTSV5eHgArVqwYln1ecMEFvPLKK7hcLlpbW3n55Zc5//zzqaioID4+nttuu40vf/nLfPDBB7S0tOB0Ornyyit57LHHfA3PgaZn+kqpsHT//fdzxx138Oijj3LxxRcPyz7nzp3LsmXLmD9/PgB33XUXc+bMYfXq1XzlK18hIiICh8PBL37xC5qbm7n22mtpb2/HGMNPfvKTYSnDichAlyOjQUlJiRnMICqt38zh49zrOftzTwagVEqpE9m5cyfTpk0LdjFCXn9/ZxHZYowZ8JlTvb2jlFJhRIO+UkqFEQ36SikVRjToK6VUGNGgr5RSYUSDvlJKhRF9Tl8pFXLq6uq45JJLAKisrCQyMhLvSHwbN24kOjr6uNuvXbuW6OhoFi5ceMxvK1asYPPmzTzxxBPDX/ARoEFfKRVyTtS18omsXbuWxMTEfoP+6U5v7yilwsKWLVu48MILOeuss7j88ss5evQoAI8//rive+ObbrqJ0tJSnnzySX7yk59QXFzMunXrBtznoUOHuOSSS5g1axaXXHIJhw8fBuD555+nqKiI2bNnc8EFFwCwfft25s+fT3FxMbNmzWLv3r2Br3Q/9ExfKRVYf3kQKj8e3n3mzoQrfnjSqxtjuPfee/nTn/5EVlYWK1eu5Gtf+xrLly/nhz/8IQcPHiQmJobGxkZSU1O5++67T+rq4J577uH222/njjvuYPny5dx333288sorPPzww6xevZq8vDxfl8lPPvkkn//857n11lvp7OzE4/EM5S8waBr0lVIhr6Ojg23btrF48WIAPB4PY8aMAWDWrFnceuutXHfddVx33XWntN/333+fl156CYBPf/rT3H///QCce+65LFu2jE996lPccMMNAJxzzjl873vfo6ysjBtuuIFJkyYNU+1OjQZ9pVRgncIZeaAYY5gxYwbvv//+Mb+tWrWKd999l1dffZXvfOc7A/arfzJEBLDO6jds2MCqVasoLi5m69at3HLLLSxYsIBVq1Zx+eWX86tf/WrYOno7FXpPXykV8mJiYqipqfEF/a6uLrZv3053dzdHjhzhoosu4pFHHqGxsZGWlhaSkpJobm4+4X4XLlzIc889B8Dvf/97zjvvPAD279/PggULePjhh8nMzOTIkSMcOHCAiRMnct9993HNNdfw0UcfBa7Cx6FBXykV8iIiInjhhRd44IEHmD17NsXFxbz33nt4PB5uu+02Zs6cyZw5c/jiF79IamoqV199NS+//PIJG3Iff/xxnnnmGWbNmsVvf/tbfvrTnwLwla98hZkzZ1JUVMQFF1zA7NmzWblyJUVFRRQXF7Nr1y5uv/32kap+L9q1slJq2GnXyiNDu1ZWSil1XBr0lVIqjGjQV0qpMKJBXymlwogGfaWUCiMa9JVSKoxo0FdKhZy6ujqKi4spLi4mNzeXvLw83/fOzs4Tbr927Vree++9gJRtxYoVVFRUDPj7N77xDdasWROQY4N2w6CUCkGjuWvlFStWUFRUxNixY4/5zePx8PDDDw/7Mf3pmb5SKiwMV9fK3/rWt7jjjju47LLLKCws5KWXXuL+++9n5syZLFmyhK6urgGP98ILL7B582ZuvfVWiouLaWtro7CwkIcffpjzzjuP559/nmXLlvHCCy8AsGnTJhYuXMjs2bOZP3/+SXUNcSJ6pq+UCqgfbfwRu+p3Des+p6ZP5YH5D5z0+sPdtfL+/ft5++232bFjB+eccw4vvvgijzzyCNdffz2rVq3iqquuGvB4TzzxBD/+8Y8pKel5aTY2Npb169cD8MYbbwDQ2dnJ0qVLWblyJfPm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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAQoAAADyCAYAAAC1fYsJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABXIElEQVR4nO2dd3gc9Z3/X7Or3rtkSZYtIxe5yLKwjTEHBhITB3DBQCgHhJYEcoYQQu7gksuZchByd0nIkfYLxEASAtgOOOBCEjoYcJVVbFmyJVnN0q6klbSq276/P+QZVqvtRXVez+MHpJ2dGUm77/30jySEQEVFRcUdmvG+ARUVlYmPKhQqKioeUYVCRUXFI6pQqKioeEQVChUVFY+oQqGiouKRMA+Pq7lTFZXQI433DXhCtShUVFQ8ogqFioqKR1ShUFFR8YgqFCoqKh5RhUJFRcUjqlCoqKh4RBUKFRUVj6hCoaKi4hFVKFRUVDyiCoWKiopHVKFQUVHxiCoUKioqHlGFQkVFxSOqUKioqHhEFQoVFRWPqEIxDgghMJlMWCwW1HUJKpMBT4NrVIKMzWbDZDIxODiofE+r1RIeHk5YWBharRZJmvBzTFSmGZKHTzT14y5ICCGwWCxYLBYkScJsNivfF0Jgs9kUgRgaGiI+Pp6IiAhVOKYHE/4PrFoUY4DsatiLgYwkSUiShEajUY49ffo0s2fPJiYmBlAtDpXxRxWKEGOxWGhqasJqtZKTk4MkSYoV4ewNLwuHVqtFq9Uq1sbAwIByfFhYmPJPFQ6VsUAVihBh72rYbDbF5fAVZxaH1WrFYrEox4SFhSkWh0ajUYVDJeioQhECbDYbZrNZcTVkK8Jb3B0vn0/GUTgkSRphcajCoRIMVKEIIvKbVg5UylaAqze+K/fDF5wJh8ViUe5BtkbCwsKIiIhQhUPFL1ShCBJCCMxmM1arddSb11EoPFkZvlogjs91FI6mpiYAZsyYoVocKn6hCkUQkGsjZAvBWWZjvAqr7O9HDo6azeYRFocc49BqtapwqDhFFYoAcKyNkF0NR4IZowgUOaMi40w45MBoWFiYU+FTmX6oQuEnjrUR7t5M/rzxgy0Uru7PmXCYTCaGhoaA4ThLeHi4YnGowjE9UYXCD+SApStXwxF/LIrxwp1w2AdG7V0VlamP+lf2AdlMLy0tZWhoyGt/frxdj0DOJQuHHPgEMJlMHDx4kK6uLnp6eujv71fSwSpTE9Wi8BL72gg5cOkt4xnMDCb2QdHBwUHF8jCZTJhMJgDV4piiqELhAcfaCNn8DqVQTBZhsS83hy8a3ByFw75PRRWOyYkqFG5wVRshSZJPZvZEeOMf1w3wfGk17X3mEd9PjYtgw5JMinMTfD6nqwY3GVk4hoaGRgVHVeGYXKhC4QJ3tRGhthCCKSylTT386t1WPmvsdzkzYOeRs1w6L5U7Lpzpl2C4wpNwCCFGuClyOlZl4qEKhQP2roar2giNRjPhLYrSph62fdrA+9WdeLpTG/BudQfvV3eERDBknAmHzWZThvi0tLSQm5tLRESE2hk7wVCFwg5vayOCYSGEqoS7tKmHN8ta+cuxViw+JiFkwfigpoMfrJvL9SUz/LoHb3H8Hbe2tpKdna1O/5qAqEJxDk9l2PaEOpjpL9uPnOXJt09htQmnboYGWDYzgcTocAC6B8wcbewZZXFYBTyxrwYg5GLhiGMNh+MsDlU4xodpLxTelmHbE2gw02AwUFlZiVarJSkpiZSUFBISEpQ3iT/Csv3IWZ7YV4PNydMk4MK8GO69bN4ol8KVi2IbR7GQcTaLQxWO8WFaC4XNZkOn0yGEIDk52esXmb+uhxCC+vp6dDodS5cuRZIkuru70el0nDp1irCwMJKTk5VAn7c4EwmtBGvmppIaF8GMCDOnDSa2fdo46rmpcRHccWEed1yYx7ZPG3ivulOxRiaCWNjjjXCo079Cw7QUCvuApdFoRAhBSkqK18/3J5hptVo5evQoMTExrFixAqvVis1mIz09nfT0dGB4qG5nZydtbW10dXVx9uxZkpOTSU5OJiYmxumL3plIaCS47YJc+oYsnNb3saOxx+2U5C+yHnn803mpI8430cTCHlfTv+RAtExERASRkZFqZ2wATDuhcHQ1tFqtUkzlLb5aFEajka6uLpYsWUJmZiYw3C/iSGRkJDNmzGBgYID4+HhiYmIwGAzU1tbS399PfHy8IhxRUVFORUIC5qbH8OJnTR6zHTKOWY+vX5DLi583TQqxsMeZcDQ0NBAeHk5GRsaIlnp1FodvTCuhcDaizlfrALwPZgohOHPmDC0tLcTHxysi4Qn5xRsbG0tsbCy5ubkIITAajRgMBk6cOMHLlf3sOzNabARwUtfv088jIwuGVoKvLkxn73H9pBMLe2RBl10RdWyg/0wLoXBXG+FrBgO8C2aazWYqKiqIjIykpKSE8vJyn87vLJ2akJBAbQ88U27gcONokXB7TqDELuMB7rMee4/rnYrFk2+fYm5GrE/XHk9sNtuIkYSexgaqwuGcKS8U7kbUge8ZDPk57sSlu7ubyspK5syZQ1ZWltKSHgi+FFDZkxCpYWF6JDcWp/KlpXO8Pq9NwJ5KPfMyYqnW9SkxDqtN8GZZK+vSA/lpxg57oXDEmXCo07+cM6WFwpvaCH9dD2fPEULQ2NhIc3MzS5cuJTZ2+JM3kAKtQAqoAHqGbBxoGmBufCvzUsJJTk4mNjZW+V0U5ybwzPWLFcGwz3oMuzF9SBJIYvhrAewsbSVqQRgrVvh+P64IVZ2JO6FwxJfpX9NNOKakUPhSG+GPUDh741ssFioqKggPD2flypUjXnD+Flx5KqDyFhvwxxMWkpOMXJjRTV9fH3FxcUpgNDo6WhEMZwFSx1u3CvjDCQuzj5wNWrwiGBPJneGLUDjibohPS0sLmZmZxMTETIuxgVNOKHwZUQf+C4V91qKnp4eKigpmz55Ndna20+MdhcLddSVJ4q0TBn6xX+e0gModecmRWGxwtntohLgI4NnP2klaN5frVi6it7cXg8FAdXU1Q0NDJCQkkJyczMbFqQD8174arG6uLfgiXhGMvpCJKBSO2AtHZ2cnmZmZI6Z/yRbHVJzFMXV+EoYDiAMDA16LBPjvesgFVI2NjVRWVlJUVORUJMC5ULizMPZW9/DMJyNFwts/VINhiJbu4ZbutNjwEdtv5czFjqOtxMfHk5eXx9KlS1m+fDlZWVn09/cPC561iScuS+WiWfFut+fK8YpgEMw39Fic12q1Kmsf7QOfJpOJvr4+brvtNqqqqoJ+3fFiSlgUsqtRVVVFUlISGRkZXj83EIuivLwcSZJGuRqBsP3IWX75eecIa0AjQW5SJA2GIa/PI4D2PvOoN7qzNKdGoyEpKYmkpCTy8/OxWq10dXWxIN3AG7GD/OG4WQl0StLwyeV4xRtlbawvygrYqpgMFoXjeR3dS2CExREdHR30644Xk96ikAOWFoslpDUR9gwNDdHY2EhqaipLlizxKBLevgHk+ID93Uj4LhL2OPvJZLHYfuSs0+dotVpSU1MpKCjgoWsu5JqlX9R/CDHynGZrcKwKIcSksijA/d9VjgNNFSatUMhWxNDQkPJi0Gq1flkHvjynubmZhoYGMjIyyMnJ8fW2R2AvUNuPnOXxvaObugT4LRLukGsiSpt6PB67qXgGYRrnbwoB7Cht5XfvHqe/v9/v7IXsLgabUAmFp5+zv79/SgnFpHQ9XNVGBDPV6YjVauX48eMIIZg3bx7d3d1+3bs9x5p6eKtCx+n2fg43en7DOpIZH8GiGfGA6+Ipd8gxBk9uQ3FuAv/+lQKX3ak2Ab/8rJ0UzSAzYywjSs0jIyO9upfJ5np4wmw2ExERMebXDRWTTijc1UZotVqnPRTu8EYoent7KS8vJzc3l9zcXDo7OwPO+28/0sLje6rdZhbccceqXB780sgCKrnm4nR7P0c8NILBFzURC7LiPaY55cfdicXx/jiuuaRAKTU/fvw4FouFxMRERTjCwpy/5EL5yR+K807VNKgrJo1QeFMbodFofG7w8iQULS0t1NfXs2TJEuLjhz+9AxlEc7Sxi+c+ruedqna/ayOyEyO4fH7aqO8X5yZQnJtAaVMPP3/3NIcbjR7PZRXw2N4adle08cDlc9xaF+7EwlF0EhMTmT17Nlarle7ubgwGA2fOnEGSJJKSkkhOTiYxMXHEBO/J8ubz9LefTD+Lt0wKofC2NiKYrofVaqWqqgqz2czKlStHfBL6cx2AVw818ehbVX5bETIt3SZuf6l0xLg6e2vCVxcE4HBjD7e/VMqaucN1FK6mc19fMgOr1cpTf6t12iPiWFuh1WpJSUlR2vjNZjNdXV20t7dz+vRpZQZHRETEpHlzyalRd0w1sZjwQuHL+j5/g5mO9PX1UVZWRk5ODjNnznTaH+KrRfF+o5k/nKjyuYDKFfK4ukbDAGc6+33uAXF1znerO5Svdx45y7KZCcxJjx0hGtcWZ7K/qpH3GkZbb57iHuHh4S5ncBiNRkwmEykpKW5ncIw3noTCYrEELV0+UZiwQuHPiDqNRuNzjMKR1tZWamtrWbRoEYmJiS6v44sgvXqoiZeOmwMqw3aGTcC2z5qCfFa78zNsaRxu7Bkx0n9hRhQX54bzUZMFi4Py+VpbIc/giIqKQq/XKzEgeQZHXFycIhxRUVGh+UF9xGq1un099vX1KX0+U4UJKRRWq5Xe3l7FHPX2U8VflwCGg2lVVVUMDQ2xYsUKwsPDXR7ri0Xx6qEmtr5VNao2Ii0uHH2vjwNzgIQoLd2DnsXQfpBuf38/Wq2G9gFBtc71fg932A+3uaQgiTWZEv/+lQKnpd5ybYUvRVhyAVNMTAwxMTGjZnBUVVVhMplGBEbd/Y1CiWOxlSNTrYYCJphQyHMjhoaGOHr0KKtWrfLJ9PRXKGw2GwcOHCArK4vCwkKP1/RWKI42dvHY7pOjxtQtmhFPeYvnQKMjAtyKhDxzwtFVaGhoICIigqysLCWWsbO01WWsJDZCw4DJ5tSVsQHvn+riw9Pww3WwedmMUYVb/lRsOvPp5RkcCQkJzJo1C5vNpgRGGxsbEUIogdGkpKRRb95QdaR6cj1UiyKE2NdGyNWSvvqn/qRH29ra6O/vZ+XKlSQlJXn1HG8F6Y3SsyNMcwnIiIvwSyS84bJ5qTxz/SKnj9m3lRfnJrAgK95lqrPPZOOOVedmbroIjtoEPL63hpKZCWglArYqvPl7azQaxZqA4VhAV1eX4qpotVqSk5NJSUkhPj4+ZKlRT0LR29urWhShwJedGu7wxaKw2WxUV1fT399PbGys1yIBri2Ko41dHKgzkBQTzl/LWjl0pmvE4wJoNZq8vo6vvFvdwXW/O0RO0sgeg0gxxFcXpGA/ic9TXcQHNR3sumd44ISr4TaC4RiGJA2LoGO3qrc1GuBfHUVYWBhpaWmkpQ2nik0mEwaDgZaWFoxGIxEREZhMJnp7e0fM4AgUTzEK+XpTiXEVCm/W9/mCt0IxMDBAWVkZGRkZzJ8/n08//TSg68i1Ee+d7MAm/J8dEROuod8cWO7ipK7f6czMfTW9lJR2jXBL5DewszhDbccAD79xgh9vKnQ73AZGz6uQcZYudUUw0okRERFkZmYqs0m7u7upqqqivr5ecQfkwGggDVueLIqpVr4N4ygUvs6N8AZvXA+9Xk91dTULFy5UTFj5fvzZ6xGs2oj8eKgzBprgdI386S9nMOzTns7iDAC7K/Wcn5ekCIosGH/6tJ6fvNvgVTrW4mWZeCgqMyMiIoiJiWHx4sUIIejr66Ozs1OZwREfH68Ihy/l1t4EM1WLIggEy9VwxJ1FYbPZqKmpobe3lxUrVox4YchvfF+FQs5oBFobMSc1mrqOgcBO4gOOac9lLuIMAH880DTKddhUlE6MpYv3W8NGWRfO2Fna6jawWdrUw58/bcMwYCU3fYDCzDiqWo20943MCrkqAnP5czoM1o2LiyMuLo68vDxsNhtGo5HOzk6am5uxWq0jAqOuSs1h2KJw97ia9QgQX2sjfDVHXQnF4OAgZWVlpKamUlJSMuqc8vO8/UTTaDS8Wz/ES0EqoKodQ5FwRBYNV9R2DPDTd2pH9JUIIZifGsE1Fy9k+5GzHqdhWQVs+7SBZ65fPOL7TmMfje5XDdjXcwRipWg0GhITE0lMTBwxg8NgMFBfX48kSUrgNDExccR5rFar22a3vr4+nxZKTQbGTCic7dRwh+xGuFNuR5yds729nZMnT1JYWOjyj+drWvW1wy28eNw06pPUMaA3Vdj2WRMzk6MVy8JewK8vmcHcjFinsQt73q/upLSpR+lF8WeiOHxRz/FedQeXeRAMTy6CPfIMjtTU4RJ2s9mMwWBAp9NRU1NDRESEklGRZ5+4oq+vj5kzZ/r4k01sQi4U9gFLGD0i3RX+lGM7XvfUqVN0dXWxfPlyt58AvgjFq4eaeHR31agJVPMyY6lq7fP7fic6/7WvxmVQ0t1gXhkb8NBfKtFKEi09gWd+BF8IRsnMBKcNbZ6yE+6Qt4vJ09IGBwcxGAw0NDTQ2dlJT08Pg4ODpKSkEB0dPeI1HSzXQ5Kk3wNXAzohxGJPx4eSkDbq2y9YkV0Nb10Jf2oiZIaGhjh06BCSJHkUCfBeKJzFJOTaiKksEjDsPsiTrBxdwtKmHh7fU83HpzuZmx7j8hxtRnNQRMIeOUh724ulowKywQyQRkVFMWPGDBYtWkRaWho5OTnKh9GBAwc4fvw4ra2t9Pb2BjNG8QKwLhgnCpSQWRRywPLAgQOsXLnS54Clv30bFouFQ4cOsWDBAsWM9IQ3U65ciUSoayOCQW4sLEiPpN0URllLn9/NY68dbSU2MoxOYz9nDb3ElVf6NTAnFAiG2+UbDQNKPCWU8zLj4uKIjY1l5syZ2Gw2ent76ezs5Cc/+Qlvv/02HR0d9PT0sHbtWmJiXIunO4QQH0qSNDu4d+8fQRcKx9oIeQqVr/hqUQghOH36NENDQ1x88cU+NRC5m5sp10j8o6p99DW9vsL40tQH+Snw8MoojjWZ+HsTHG71r0ltZBNah8vjgklilJbYyDBmJAxbhkebelwGkbd91oTOOMSPNxWGdAK341pKudT8pz/9Kbfeeivr1q3jwIEDlJSU+C0UE4mgCoWn9X2+4ItQmEwmysrKSEhIICYmxuvxazLOCqjeKD3LKX0vR850+/1pGamVGAq0wCJIfNQ4xGWL87jpioWs7+3lk5NneeWoniM6q1PBCNPg12ayUNA9aKV70Epr9xCXzkvlh+vm0j1g5pS+j92V+lHHy9+7f2ViyCwKd0HSwcFB1q5dy5133hn0a48XQRMKIQRDQ0NBq43wNm7Q2dnJiRMnmDdvHunp6XR0dASUVg1WAdVFc1L4pLYzsJMEmf/5x2k+Pv3FPSUmJTFXDFCtH52S9FUk5G5VgKq2XvpMwVcZOePxQU0HP1g3lx9vKuT8vCQe31szSux2V+oZ6O/n3y4N/uZ1byoz5WloU4WgCYUsDs7eoKFo8BJCUFdXh16v5/zzz1dcDTlb4ssniUaj4Vizke37zgQ0ok7mvLQYmgzjVxvhin6zbcRgmkBJjNJSkB6rVHjW6PqcvmmDjfVcQ9rHpzu548KZvPT1Yp7YWz2qdP3duj6Q2njmJueLmfzF0+trKlZmBtUuczXH0p80pzuhMJlMHDlyBLPZzIoVK0bEI/wJgv7tdB/37qjmH0EQCYABs5UzE1Aogk33oJXDjT2UNXXz83dreSxAkViZF8+c1GgSozzXPsjp0dtfKqVG18eObyznqkWjV6y/W2t0ub/EXzx98Pla/+MKSZL+DHwKzJckqUmSpLsCPqmfhLyOQn7D+zoazJVQyNOd586d63QjmD/Tp351wODHC1yAi4V78kq/yYYGyE2OpK3H5FNsxVkTmj8caDAq08WHBwTXelxjYD8SsCA9ltX5ZvbXdY04xlkZeiC4E4lgzsAQQtwUtJMFSMiFIiwsDIvF4vOOA61WO2KithCC+vp6dDodJSUlLrv/fAmCOps+BcMFVAg8BDEn3ixHX8hLjiQ9LpKzPUOYLDYiwjTER2qp0fWPa6pz22dNnGzrJTcpisTocOZnxHgUInkkoARoNRJLZsRRfrZXedy+E3YsmIpbzYMqFM5+Of4WTmm1WoaGhj+ZzWYz5eXlREdHs2LFCrf+obcWhbPpUxLwpQXpNHX1T/kCqgbDUEg2kAUDR4vAWwTD3aqVrb2kxYaPaCrbXamntWfI40oCr67jxbj+qUbIVyj5KxRyrKG7u5sDBw6QnZ1NYWGhxyBlINOn7rpoFjW63ikvElMdm2BU5ykMV3De9cdjXq1RdHluD6sPTSbTuM3yDCVj4nr4KxQGg4GOjg6WLVvmddGKN8HMVw81sf1w8xfPkWDZjBie++SMz/epMrkw+TH4157pOIsCJqjrYTabqa2txWQyceGFF/oUCHXWTPbqoSae2HMSk4sAnU3A4ZbgBORUQkOYBpbmDE8VP6XvDcht2n7U+xF9jngzWHeqzaKAMcp6WCwWr4/v6emhoqKCrKws+vr6fM6W2LseD+2o4M3yVp+e74q4CC29psB2hqj4j8U27DpkJ0Zy9+o8Gg0Dfu80EbjvhnXHdJzADRMoRiGEoKGhgcrKSpYuXUpmZqbfQVCbzcbSx98JmkhcNCeFAfP0EQkJ0Epw/swE8pJ9K4cPNS3dQzy2t4Y3y9uc1k14i303rE/Pm4bLf2AMXI+wsDBMJvfdlRaLhcrKSrRaLStXrkSr1TI4OOh3bONLv60MuARbZvmsRGamRPNJbXDON9G5alE6BemxJEaH89uPz9A2Tp2xGtynp9v7zOyu1JOXHOm3G+KPCzIdl//ABHA9jEYj5eXlzJ49m+zs7BHP81UogulqyLR0DXL4THdQzzmR2V2pJzO+izajb1vMgo0NWJ2f5DFVGkiswh8XxJudHpPBopAkSQuECSG8+gWOWWWmM5qammhsbKSoqGiUCvsqFNf99vOQLNaZrFWWgTDeIiGzv66LqxalU95ipMEwGJJryC5IsIRioloU5+ZanAcMAs3AJuA08KYkSZLwUPwxLulRi8XC8ePHkSSJFStWOK2L92W/50M7KtyKxFSdZTkd2F2pV2IRvouF6zJ7e3xxQSabUEiSFC6EMAM3A8uBkwx7dpuAJ+XD8PAWGZP0qL3r0dvbS3l5OTNnziQ3N9encznj1UNNLt2NMM3wJ8YULJSbVuyu1LM6P8kPofDuNeSLC+JNMNNZD9J4cM5SkM3DU8BrQohT5x47ALSce8zjO2RMXY+Wlhbq6+tZsmRJ0Pr1//PNKufXnUCDV1QCZ39dF3NSo0O22sBbF8Rms3nc6TFRYhRCCCFJ0jVApRDiNWmYMIZDQLsAq3ycp3OFPD0qN4VVVFSg1+tZuXJl0ERi5VPvuZRCqweRiIvQEhMe8h9fJYjUdgyQneBbc6GMhGf7YvvRVrZ9WO02NjbZXA8gB3jgnGCECSEsQgjbuf96bWuH3PUYHBykq6uLrKwscnNzg9ZV99COCroH/a9tuHFFrlqyPQlp6TGRHKPF0O/b396bd4QAnvm4lWiTgXkp4aSkpCib0eXX7WTbOyqEeFaSpG8AG4BZkiTtFkLU+HqekLoeZ8+epa6ujqioKL8XorgaEvJWAGnQuy+axa5jwR1mojJ2+CoSvmAVUGNKZvPi2XR2dtLU1ITRaFQWHA8NDU26gishxO8kSXoN+B2wWZKkZ4G/CSG6vD1H0IVCnrxdVVWFyWRi5cqVHDhwwK9zudoWdt1vP/c7i7F+SRYA+t6JPWJfZfzYoexKzSIrK2vEgmODwUBPT49ibTjuKQ3i8p91wDOAFnhOCPFjP89zK5AH9AJ/A24DngCKJUn6PyGEV5+YQXfS+/v7OXDgALGxsSxdujSgkWDOailePdTkd73E8lmJ/M91i3ntsH89ApMR3zplVGC4SfDn735RiisvOM7LyyMpKUlZAtTV1UVpaSlHjhyhvr6e6upqjEZjwDG4c8VQvwS+CiwEbpIkaaGfp1sEzGc4VgHw7XNftwJ/lCTJK1UL+rj+mpoaCgsLSUxMDPh8zoTCVZbDExLw0Nq5PLSjgp4AYhuTjenzkwaXw4093Pz7I6THR6I3DnFN8QyuL5mB1WolPDyc+Ph4ZZetyWSis7OTZ555hmPHjnHfffdx1VVXceutt/o82e0cK4FTQohaAEmSXgE2Asf9ONcPhRDOSqN/IUnStXga5HaOoAczi4uLnQ6O8XcSt/25PLkccmTb2U9+10WzAIJe4q0ydSk/2wvnRuqVnx2O/xVIo4OZERERZGVl8bOf/YzDhw/zn//5n3zwwQeBWNM5QKPd103ABf6cSAhhkSRJ88WXw5kOafjNeLUQwqv5CmOyzVxu/fanZdzeonDncmgkKEiUqO4aLSXLZyXy5cJ0bvn9IZ+urzK18bVi9x9VevLnuS+4EkJQVFTE0qVLA721Uaf292RCiFGfnecEw2sffkwKCfydcmXvelz3289dHicB62aFcbpn9O9SAopzk7jxuUNqAZbKCHx95315QbrbnR5BnJXZBNinCXP5oopyXAi6UHhTxu0tslC4C2BqJPjGsnjiUzOcFlnlp6kj7lQCZ3V+EteXzPA4YTtIE7gPAnMlScqXJCkCuBH4a6AnDYQxsSgCmcRts9n4yduu60O+Oi+By0rms/Ooc8GtbVdH3KkExpzUaH57c5HH44QQQbEqzgUftwBvAycY7tGoDPjEATAmMYpABuy+Ua53OYIuTAO3Xjzv3ETtQO9SRWU0c1Kj2XXPCuVrd0JgMpl8XpDtCiHEHmBPUE4WBMbM9fDXovjNp23OH5PgR1ctAOC1Q81Oj1FRCQRHkfDERKzKDBZj5nr4E6PYW91Dv8W5gl9/fg43LM/luY/rx3WzlcrUZMmMuFEi4Wk58WSZbuUPEzpG8cIhvdPvh2kkNhXP4GhjF+9UtQd6eyoqI1idn8TLd5aM+v4k7BwNGhPW9Xj1UBOdA6OfI0nwo6vms2xmEs99XK9OrlIJKnnJkS4Dl9N1+Q+MYR2Fr66Hq0zHDedcDoDPajsDvjcVFXv+a4PrRcbeTLdSLYoA8NWi+NNnZ5xmOjQSbCoenmv41f/bT69JjU6oBI+rFqW7nXA1VSZw+0NI2swd8UUouru7eXKfc2ti69XDWY4rnvmEM52hGYmmMj2ZnxHDjze5tiZgescoJlQdRWNjI//x1imcJToWZMVxsL6LH/nZPaqi4gqtBD/86jyPx0226VbBZEyEwlN61Gq1cuLECWw2G5+3OReUtp5Bqlp7Q3WLKtOYa4uzvNrr4U161H6J1VRi3GMUAwMDHDx4kISEBI4PpWBzkcYw9Pteh6Gi4okwjcT6oiyvjvXGolBjFF7iav+oM6Ho6OigqqqKhQsXkpyczE2vfhDs21FRcYlGgn//SkFQ1wmqrocPOG75cnQ9hBDU1dXR3t7O8uXLlfr49t6JscpOZXpw9YJkNi/1flmPPN3KFWqMIkDkwTUwvE6wvLycqKgoli9frvh87uZNqKgEm3CtxIUzNBw5coSIiAhSUlJITU0lOjraZZu41WolKirK5TmncsHVmAiF/Ivv7e2lrKyM/Px8ZswYueexIggLhpNjwoiJ0NLTb8JoUms2VZwjAdcUZXL1hcOZjoGBATo7Ozl16hSDg4MkJiaSmppKcnLyCFfDm8rMYC23mmiMiesBYDabKSsrc7pO8NVDTUEpxTb0WzD0W9AAc5IjqDOY1BJvlVFEhmlGBDCjo6PJyckhJycHm81Gd3c3HR0d1NXVERYWRmpqKikpKVgsFjVGESpsNhs1NTWYzWZWr17t1Md7Ys/J4F4TqDWoeztURrM6P4l7L5ntMoCp0WhITk4mOTkZgKGhITo6Oqivr6ezsxOTyYTJZCIlJWXU8Nz+/v6gWhSSJF0PbAUKgZVCiHEb+hpSoTCZTBw7doyUlBSio6OdTiX+77/VYLKqn/sqoSdMI7kVCWdERkaSnZ1NdnY25eXlpKen09vbS0NDAxqNRoltxMXFMTAwQHR0dDBvuQLYDPw2mCf1h5DVUXR1dXHw4EFmz57NeeedR1hYmNMx/n8/oQvVLaioKPiaCnWGEIKkpCTmzJnD8uXLWbx4MVFRUTQ0NHDllVdiNBp57bXX6OjoCMo9CyFOCCGCa277SUiEorm5maqqKpYtW0Z6ejrguuhqbaH36SkVFX+5rjiL60tmeD7QDY51FPI+j0WLFvHmm28SFRVFTU0N3/72twO93QlHSFyP+Ph4VqxYMeKXKtdSOG5O+v4Vc4HhpcO5yVE8tHYu1W29ak+HStDwpfrSHe4KrrRaLWFhYfzoRz/y6Zxf/vKXeeeddyqcPPQDIcQuP24zJIREKBITE0dZD+7KuL9/xVxFMACWzUwCUMVCJWC0QXA5ZNxtu/N3+vY//vEPgMX+39XYEBLXw5cyblfcsDyX5bOSPB6XFe/XbkeVaYDEcMNXoC7HiHO6EIrBwcFgBzInFGPSFAb+Ddh9aG2Bx2P0vSYWpIzvzu4ZCRFkTN3XyKRFGySXwxtCUZUpSdI1kiQ1ARcCuyVJejuoF/CBMRUKX+dmLpuZxLWF7vPSVgE5GcmEjdlPMpqzPSb0A7Agc2qW705GJILncnhDKKZbCSFeF0LkCiEihRCZQoivBPUCPjBmroe/k7jvWpFGUVaM22PeP9lO8cxEn88dTARQ1dY3rvegMoxWgtuXRAbV5fAUg5jKfR4whhaFPwN2YVhgvnlBBlo36xytAg6f6Xa6AlpleiEBG5ek8+XZwfUFbTab252iU3kMHkxw1wOGS2oXpEdy3fk5bo+bbrWdErAgVcvVCxL5j3VzmJXsuqtxOqHVSFxZmOp2EpU/eNMQpgqFjwR7raDZbGZxTK9bqwKml1jMTI4kMzGeuo4BnthXyxnD4Hjf0rijkeCRK+awKCsm6ELhzWBd1fUIAv4uKrZarTQ0NLB6/gz+8+oFY3fDE5wGwxAf1HZRqVc7ZGHYkvj3K+ZwTVEGg4PDomm1Wp22DfjDdJ5uBWM0jwL8S48aDAbq6upISUkhNzeXG3Lh+Fkjr4zLUmIBahRkwqGV4LqSbDYWZVE8M5GBgQHq6uo477zzsNlsSpGURqNR/usP03n5D4yxUPhiUTQ2NtLc3Mz8+fMxGAzK9zcVz+AvR1vGoeNUFYmJhgb4jyvn8bVz8avBwUGOHTvGggULSEpKUoTCZrMp/ywWC5IkodVqfRINTzGK/v5+UlJSAv2RJiwTLkZhs9k4fvw4BoOBFStWEB0dPcJ8XDYzic3LpuZIdBXvyYuX+O+vzuDK+YkIIRgYGKC0tJTCwkKSkpKA4UC4VqslPDycyMhIIiIiCA8PR5IkrFYrZrMZs9nslYsy3WMUIbMoHKdceZMeNZlMlJaWkp6ezuzZsxVT0VFgNhXPYMeRFiyuZvv7yazkqCkRFJyVHEWfyUp739QcVvyl+Wn8z6Z5tLe3c/r0aXp7ezGbzcyZM8et+a/RaNBoNMrIA9nakF9fVqtVec05WhvexCim6hg8mEDp0Z6eHg4ePEh+fj75+fmKVeLsectmJvGjq+Z7zIK4Iys+YpQz0WAYpCQ3nkz39V0TAq0EF81JdvpYY9cgG5dmTcnAb5hG4q7VeURGRpKTk0NBQQEajYaCggJlR8zRo0dpbGxkYMD12kl7ayMqKoqIiAi0Wu0Ia8NkMinWxnTeEgZjGKOwn8TtSGtrK7W1tRQXF48y37RardPn3bA8N6DAZqvRxJLseCrPGpWlQwI40mREI8HVSzJ4q3xiDtXJSYzkG/80i6+dn8Nrh5t5fE819iEbm4BtnzZSkpfIoYbu8bvRIKOR4IdfnatU4fb29lJeXs6SJUtGvEn7+/tpb2/nxIkTmM1mUlJSSEtLIzEx0WVcwt6KkK0Ne5fEZDIpr2Fn51BdDz9xdD2cxS2EEJw6dYqenh5WrFjhdJ6mO0skUBekvMU4Sixg+I32VrmO6DANA5ax2ZieFR9BUky4V2Xgzd1DPL6nGoCvnZ/DvIw4ntvfwHsn25VUqU0w5UTiR3aBS6PRSEVFBUVFRaPeoDExMeTl5ZGXl4fFYqGzs5OzZ89SVVVFbGwsaWlppKWljZqNolzrnBDIFkRPTw+tra0sXLgQq9WqvB7tMylTeQI3jKFF4YjFYqGsrIy4uDhKSkpclsc6i1HIyC7Io29V4SwJIuG5CKu8xUhsuESfefSRYyUSq7I0PHxpOunp6Tz1XjNvVeg9PscqYOvual451ExOUjTpcRGsnpPMJ7UGj8+dTEgM10j88KtzFZHo6enh+PHjLF26lJgY935iWFgYGRkZZGRkIISgt7eX9vZ2jh07BkBqaippaWnEx8c7fQ329fVRWVlJUVERcXFxTq0NWYxU1yPI9Pf3c+zYMWbPnj1qv4cjGo3GbUOOOxdEMByE8fR2dyYSY8Vdq2fywGX5yqfeNTOMvFcFfV6WnFS19U3ZZjQJuHBOMlvW5CvuRldXF1VVVSxdutTn+Q+SJBEfH098fDz5+fmYTCY6Ojo4c+YMvb29JCYmkpaWpkzY7uvrU1ZMyCLgaG3YbDb279/P6dOng14NOpEIqevhjPb2dk6ePMnixYtJTAxOx+em4hm8UXqWQScWQEGSRHyUhiOt1glXwbj1qmFTurSxmzfKOpHQUpiVx9rCTt4obx/v2xt3tBpphEgYDAZOnjxJcXGx241d3hIREcGMGTOYMWOGss+jvb2duro6NBoN/f39LFy40K2lcOTIEf71X/+Vzz77TJkPOxWRPLTP+v3eslgsI1wGIQQffvghUVFRFBcXK/tGvWH//v2sXr3a7TFHG7t4vfQsrx1uxvFH+sHafFLDTbxVoaOpx0p119i4FO5YkBlLTlI03QNmjjR0e7R6phuOMYnOzk5qampYunRpUETCHf39/Rw9epTMzEyMRiNDQ0MkJyeTlpZGcnKyYjmUlpZy77338pe//IXzzjsvkEtO+Gq+MREKm81GZWUlHR0dXHDBBT6bjN4IhRACi8XC9iMtPLqnZtTj8qd3e3s7b31aya56OGnw/PZMjNLSPeh7j4qK/2ilkRWXHR0dnDp1yucPGH/o7++nrKyMRYsWKcFJq9WKwWCgvb0dg8HA0aNH0el0vPnmm+zatYt58+YFetkJLxQhj1HIZbUzZszAbDb7PYTUHXJgSZIkbliey8enDbxzcqTpvnV3NT09PSyJ6eGGL6/k9uhoDp8x8N3t5bT3uxYCVSTGluV5iTz4pfMUd0Ov11NXV8eyZctcZimCxcDAAGVlZSxcuHBEBkOr1SqZEiEEXV1dvPzyyyQmJvL1r3+dP/3pT8yZMyek9zbehCz6IkkSXV1dHD58mIKCAvLy8vzuIJUkyWkthX30WZIkJS5y1+o8NE40+qcftbJHl8DJ9uF1g+fPSubDhy5xWbikMrZcPSeCby8wETPQhsFgoK2tjfr6+jETiWPHjlFYWEhCguvxeTU1NTz66KO8+OKLfPbZZ+zbt4+ZM2eG9N4mAiETCp1Ox4kTJ1i2bBmpqalAYFOuHAXGvtnHXiQAimcm8qMr5zm157YfbeXWF47w2uEvsiS/u6WYu1ZP/T/2RCUnMZKX7yjhJ7dcxIoVK0hOTqa2tpaKigoiIiJob2/HbA5dObps9RYWFroNsNfV1XHbbbfx4osvsmTJEmB4NYWz+p+pRshiFAMDA9hsthH7Rk+ePKnkrX3h8OHDLF68WPFPZUtCbiF2lWH584EzPL6v1uV5vzQ/jbtW5ylmbmljN//7zmkOT4BCJQ1QkpdIYvTwi/C96naC3NoyIdBK8IfbS0bMPD179izNzc0sXbqUwcFB9Ho97e3taDQa0tLSSE9PJyYmxu1oOm8ZHByktLRU6Th1RUNDAzfccAPPPfccK1asCPi6Dkz4GEXIhMJms436FDh16hTx8fFkZmb6dK6jR48yf/58YmJiRoiEp/kA5eXlHB9K5n8/aHH7gzj6xaWN3Ty65yQnx7A+YbmdKKTFRSjzFWRKG7u5eduRMbufscAxaAnQ0tLC2bNnKS4uHtVbMTQ0RHt7O+3t7QwMDJCcnEx6ejpJSUl+1TB4KxLNzc1cf/31/OpXv/IYVPcTVSjsqa+vJyIiguxs39rEy8rKyM/PJyYmxqmr4UhHRwc1NTUsXryYuLg4p/0QzkiLDWd26nCl31imLCXgP68a+YZxxmuHm9m6u3psbirESMD152ez9ar5yveamprQ6XQsXbrUbQMWjM5EeFOabc/Q0JDyAZSc7DpG1draynXXXcfPfvYz1qxZ4/XP5yMTXijGtDLTnylX8vPMZrNXItHU1MTZs2dZtmyZ4qrY90O8e9J1IVN7n5n2Pv/djrlpUaREDjcQDVgkmvtsGE2etVYAj9n1brjiwgwbl+eF826Da39dIzEpXBStRmKT3XKehoYGOjo6vBIJGJ2J6OvrQ6/XK6XZsosSGxs76vXirUjodDquv/56/vu//zuUIjEpCJlFIYTAZDKN+F5LSwtDQ0Pk5+f7dJ7q6mr6+/vJzc0lOTnZZYNZTU0Ng4ODLFq0yOWL7bXDzTy2uzpo1oIEXO4Q64DhfLxer+e1w81sqxgK6FxCCGpra+nt7cWSlMcdfyjFXRuKVsKj9TSeOBZT1dfX093dzZIlS4JSBm0ymRQXpa+vT3FRkpOTsVgsHD16lLlz57qdSNXe3s61117L448/zrp16wK+Jw9MeItiTIVCp9PR09NDQYHnVYHyOeRuva6uLnQ6Hd3d3SQkJJCRkUFKSoqSESkvLycuLo7zzjvPY5BruGS6lbKmbr/7JCTgkvOS+NYlczwuH/r+jnJ2H/e+JNvedxdCcOLECSRJYsGCBUiSxKO7T/Lq4Ra354iP1NI75L5sPS32i2j9oNlGryn0NSOOIlFXV4fRaGTx4sUh6ZWw2WyKi9LZ2cng4CA5OTnMnj3bpYtiMBjYvHkzP/zhD1m/fn3Q78kJqlDY09HRgV6vZ8GCBV4931lmQwhBd3c3Op2Ojo4OoqKi6OvrY9asWX7ls0sbu3l+fwPHmro9ToTSAIuzokkNM3PbmgVccJ73tf2X/O/HPk2ckoDL5qWyJtNESV4yc+bMUX4HpY3d3Pbi0aBP+Ao19iIhW0kDAwMsXLgw5A1VJpOJI0eOMHPmTMxmM+3t7dhsNsVFiYuLQ5Ikuru7ufbaa3nooYfYvHlzSO/JjukrFDDsC9rT1dVFc3MzixYtcvs8Z0VUzuju7qa8vJykpCT6+vqIiIggPT2djIwMvwp0ZEujo9c06rHUuHAuyIBMbT9FRUUj0r7e4G8g0pU7EmwXKtQ4isSpU6cwmUwsXLgwKGlOd8gjFufMmTMiNS8LRnt7O/X19bz66qs0NDTwne98h1tvvTWk9+SAKhT2GI1G6urqKCoqcn4xN0VUjuh0OmpraykqKlJmEvT396PT6dDr9UiSpIhGoOvohRCcPHkSq9VKYWGh359+t71wxO9hMhrgMgfB8MYFmQg4ikR1dTU2m01xpUKJ2Wzm6NGjo0TCEYPBwO233054eDitra3ccsstPPjggyG9Nzumt1CYTKYRvR0DAwNUVVWxbNmy0RfyUiSEEJw5c4bOzk6WLFnisipuaGgIvV6PTqfDYrGQlpZGRkaG0yi4O+T4R0JCwohZnv5Q2tjNLS8cCSgrEaaBNXPTSIuLoDArjif21kxoF0QjwW2FEVy7LIu0tDRaWlqQJIn58+ePmUjk5+e7bQEfGBjghhtu4KabbuKuu+4ChmssQt2laocqFPbnN5lMHDt2bFRlm7eVljabbURgz9tPdtnE1Ol0DAwMkJqaSnp6OomJiW5frPL95uTk+Fz74Yr7Xi0f1bDmLxpgZnIUDYbBCTdrA74oZFuUFaNMzLZYLGRmZpKenk5KSkrIYhNms5nS0lJmz57tViQGBwe5+eab2bRpE9/61rcCFq8777yTt956i4yMDCoqKkY9LoTgO9/5Dnv27CEmJoYXXniBkpKSCS8UY15H4axnwxuRMJvNlJWVkZaWRl5enk9/0PDwcGVAidVqpaOjg+bmZk6cOEFSUhIZGRkj5gzAF5Wdc+fOVXpVgsFdq/P4oKbdbXrTW2wwZusF4iK0PmVFvjQ/jf+7YbgfQghBZ2cnWVlZ5Ofn093djV6vp6amhpiYGNLT070ulPIGi8VCaWkps2bNcisSJpOJr3/961x55ZVBEQmA22+/nS1btnDbbbc5fXzv3r3U1NRQU1PD559/zr333svnn38e8HVDTUiFwnHAruMkbvudCu4+WeQZAXPmzCEjIyOge9JqtcoMRZvNpqRdq6uriY+PJyMjA61WS3V1NYsXLw76wNTimYm89PUSfvhmFbXt/UE9d7CJDJPYdusyimcmcsNzhyhvMXp8jgREhmm4a3Ue8MUsktjYWKUVOyUlhZSUlFGFUpIkjSiU8ge5TiIvL8/ta8VsNnPnnXeyZs0a7rvvvqC5QZdccgn19fUuH9+1axe33XYbkiSxatUqurq6kCRphhDibFBuIESMqUVhn+L0NmhpMBioqqpi0aJFbtt//UGj0Yx40fb09FBXV0dHRwfJyckYjUaioqKC3h1YPDORJ9Yv4J+3HRnlMmiAeZmxVLf1jVtGw76Oo7Sxm8t+9gltxtGZIGfPs98DarPZqKioUGZUOiJJEnFxccTFxZGfn6/0csiFc966iDKyJZGXl+e2n8hisfCNb3yD888/n+9973shj5XY09zcPCKNn5ubS3V1dQ6gCoUj3opES0sLTU1NLFu2bEwCS11dXdhsNtasWcPg4CA6nY6jR4+OsEKCNWFpaW4C1xTG8ZcTvSO+bwNqdH1cNj9tXMbkpceFMyslho9OdfLKoWavC9IcG7xsNhtlZWUkJycza9Ysr84hL/XJycnBarXS2dlJS0sLJ06cICEhQYlrOEtNyyKRm5vrViSsVivf/va3KSws5N///d/HVCQAV4ObJmKIaQQhdz3sEUIghODs2bOkp6e7rEUQQnD69Gn6+vo4//zzvar9DwT79GdxcTEajUb5pJszZw4DAwPo9XrKy8sRQihpV0+j4l0hB2VvLUqgVG8b5YJYBbx7sp3IMA0/umoeH57q5P2T7WMiGPpeM/pe31K4EnBtSbYiElarVYkn+TvURavVkp4+vMJAtvbkaVdyvUxaWhpRUVFYrVYl6JyVleXynFarlfvvv5/c3Fy2bt065iIBwxZEY2Oj8nVTUxPAhM9xj5lFIQctFy1aRGtrK2fOnCE6OpqMjAzS0tIU895qtVJZWUl0dDRFRUUh/2NarVYqKiqIi4tzmbKLjo5WFsqYTCb0ej0nT57EZDKRmppKZmamUtnnzfXKyspISkpi9uzZ3Nbb4rQQSwBDFhvHW3t59oYlSjFYrb5vwg3jtW/wkt+0GRkZ5ObmBuX8kiSRmJhIYmIiBQUFyiawyspKLBYLZrOZ7OxstyJhs9n43ve+R3JyMk8++eS4iATAhg0bePbZZ7nxxhv5/PPPSUxMZKLHJyDE6VF5wK48+Ba+CFrKgay2tjba29uJiIggJSWF1tZWcnNzyclx33IdDOT0Z3Z2tl/Xs1gsStq1r6+PlJQUMjIySEpKcvpCNJvNyvxQ++u5K8RyNrPBsYJUrqk43tqrfK+5a2BM9n3YF1NZLBbl5wtWOtkdVquVo0ePEhsbi8Viobe3d0QDmP2KwIcffhiAX/ziFyEtF7/pppt4//33aW9vJzMzk0cffVQZt3DPPfcghGDLli3s27ePmJgYtm3bxvLlyyd8ejTkQmEymbyKR+j1eo4fP66sqA92TMCRYKc/bTYbnZ2dSuNaYmKi0rim0WiUcWtz5swZlbIrbex2GtiUcWyk8gaTycTP/3qQF0+YRq0vSIsNx9BvDrjD1FEkSktLycnJ8bjUKRjIlktmZqYiunIWS6/X09nZiVar5dChQ5w5c4ahoSF+85vfTNQlPdNbKF588UXmzJnjdFqRPXq9ntOnT7NkyRJiY2OVmIBON7wkOFil2DJdXV2cOHEiJOlPQJnUrNPp6OzsJDIykt7eXhYtWuRSlP73H6d4fn+j08fAN7GQRamgoIB36gd5bE/1qGpQCchOjGRGYpQyWUumsqWHVg9ZDvv7kYubPGUbgoUzkXBECEFLSwsPPvgghw8fZt68edxzzz3ceOONIb8/P5jwQhHSGEVCQgK/+MUvOHnyJJdffjkbN25kxYoVI9yPxsZG9Ho9JSUlSsGNfUxgaGgInU7H8ePHsVqtpKenk5mZ6XcgUafTKePfQ5VJkSSJ5ORkkpOTMRgMVFZWkpaWxqlTp2hoaCAjI4P09PQRBUbf+3IBx5p6XLogNuHdcBu55kQe7/a1c7rkKBaC4WXHZ7uHRszm9EYkJOC7F8/g2uIspeFq9uzZAde4eIOcTcnIyPDoLv7xj38kISGBhoYG2tvbaW1tDfn9TVVCalHIDAwMsG/fPnbs2MGxY8dYs2YNV111FW+99RY33ngjJSUlXpmEciBRp9NhMplIS0sjMzPT6/6NhoYG9Ho9RUVFYzI5Wa/XU1tbO2K7lWPjmiwa0dHRlDZ2c+sLR9y6BO4si97eXsrLy51aSt6OA/SEBnjo8plclClob29ncHCQ7Oxs8vPzQz5S32azcezYMY/ZFCEEzzzzDEePHuXll18Oyt963759fOc738FqtXL33XcrMQ+Z7u5ubrnlFhoaGrBYLDz00EPccccd3p5+wlsUYyIU9gwNDfHGG2/w0EMPkZGRwbJly9i8eTMXXXSRT39QZ/0bmZmZTrdSyx2LZrN5TGYfwHANiDxJ2tUbSJ4wrdfrlca135f185cy99vMnYlFd3c3J06cUNw3Z5Q2dvPc/ga/U632Q4iHhoaUugV5olQwO3YdkS2J1NRUjyLx61//mo8//pjXXnstKOJltVqZN28ef//738nNzWXFihX8+c9/ZuHChcoxTz75JN3d3Tz99NPo9Xrmz59Pa2urt9ef8EIx5gVXkZGRVFZW8vOf/5z169fz3nvvsXPnTr7//e+zcuVKNm3axJo1azz+gh37N9rb25Wt1CkpKWRmZpKY+EV1YGxsLPPmzRuTtFh9fT0Gg4GSkhK3sZmoqChmzpypDFPR6/UsTezkDQ9zLx3dkM7OTqqrqz1u+C6emaikWn0RjJzESP578yKlvV2eXj1v3jxlnJxcWanX66mqqlJSxxkZGU7F2xdsNhvl5eWkpKR4FInnn3+e999/n507dwbNwjlw4AAFBQVKCfqNN97Irl27RgiFJEkYjUaEEMpr0NeZJROZMbcoXGGxWPjoo4/Yvn07H3zwAcuWLWPTpk1cfvnlPsUS5Io+OfsgdyvOnTs35JZEsCyXVw428fi+mlHZCkck4KLZ8VyaaebaS0t8yhCVNnbzyBvHPTaVOe7dkDdqeRpxb7FY6OjoQKfTuUxbeoMsEklJSR4rPF944QV27drFrl27ghp/2rFjB/v27eO5554D4A9/+AOff/45zz77rHKM0Whkw4YNVFVVYTQaefXVV7nqqqu8vYRqUXhLWFgYl112GZdddhlWq5X9+/ezY8cOHn30URYuXMimTZtYu3atxyCmXNEXGxvLsWPHyM3NZXBwUClusU9ZBhO5+SkqKopFixYF9Al644pcNBrJY0xBAB/XG/n0DISltXuVEfFlyZFcwyGLhBwo9bRRC4b/npmZmWRmZipzK/V6PdXV1cTFxZGRkUFqaqrbT13ZGkxMTPQoEn/605/YuXMnb775ZtCD1M4+TB3/vm+//TbFxcW8++67nD59mrVr13LxxRcHvT9pvJgwQmGPVqvl4osv5uKLL8Zms3Hw4EG2b9/Oj3/8YwoKCtiwYQPr1q1zmdrs7u7m+PHjIxrJ5JRlW1sbNTU1SqdoampqwCXiFotF8Z+97WvwxNfOz+FEa69XE6ysAh7dXc1b5W2clx5LYVYcXQMWVs5Konhm4oiqTm8nbDmWZff19Slbvn198Ws0GlJTU0lNTUUIgdFoRK/XU19fT3h4uBLQtbeI7BvKZs+e7fb827dv549//CO7d+/2OxvmDmdl144FZdu2bePhhx9GkiQKCgrIz8+nqqqKlStXBv1+xoMJ43p4g81mo7S0lB07drB3715mzpzJhg0buPLKKxUzWF5sW1RU5NJfl3sH5AG9MTExSim5r36lXN2Zm5sb9EKjQIboSgwHPedmxHKyrc/nP2SYRuKlrw+3mLvLpgTKwMCAkgUSQiht5nV1dUpXqTveeOMNfv3rX/PWW295tHL8xWKxMG/ePN555x1ycnJYsWIFL7/88ojZr/feey+ZmZls3bqVtrY2SkpKlAyNF0x412NSCYU9QggqKirYsWMHu3fvVl5gERER/PSnP/U6gyIHn+RS8qioKOUTztM5ZH+9oKDA532q3vLa4WanBVOhxD6rIovEkiVLiIuLC+l15fT36dOnEUKQnZ3tts189+7d/OxnP2P37t1uF/kEgz179vDAAw9gtVq58847+cEPfsBvfvMbYLg0u6Wlhdtvv52zZ88ihODhhx/mlltu8fb0qlCMBVarlW9+85scOXKEyMhI4uPj2bBhA+vXryc9Pd2neIF9/0lYWJhSSu4YQTcajVRUVLBw4cKQfZLJhEosZjkZo2cvEj09PVRWVlJUVOT3IBlfEEJw/PhxoqKimD17thKU7unpITExUWkz12q1/O1vf+Opp55iz549QZ1ANk6oQjEWGI1Gnn/+ee6//34kSeL06dPs3LmTXbt2ERERwYYNG9i4cSNZWVk+iYZ9cZRGo1FqBAYGBjh58qTbmoVgYrPZ+MVbh/ldaW9Q/iAaCa5cnMGeCt0I8bEXCbkuw37KeSiRRSIyMnLUEic5vqTX63n11Vf54IMPaG1tZe/evcyfP9/NWScNqlCMJ0IIGhoa2LlzJ2+88QY2m43169ezadMmcnNzfRINeZBNc3MzAwMD5OXlkZOTE/TCIkfkKeBJSUkc6Ajnib01WG1i1B8mMUpLz6DrzWAaYG5GDIMmCzFaGyc7LCNqKOxFoquri6qqKo91GcFC3oYWHh5OQUGB27/LBx98wNatW7n88sv58MMPeeSRR7j66qtDfo8hRhWKiYI8MGfnzp28/vrrDAwMcNVVV7Fx48YRW7jc0dTURGtrK4WFhRgMBmUVgGxpBNu6kNu2MzMzldkOcgZj55GWUalTx0Yvuf38RGsvp/R9HHUxx0IC7i6O5eYLZqHVajl16hTFxcVjMlVMCEFVVRVhYWEeReLTTz/loYce4q233lL6POShzP7gqSwb4P333+eBBx7AbDaTlpbGBx984Ne1PKAKxURFp9Px+uuv85e//IXOzk6uvPJKNm3a5LR6UwhBXV0dPT09LFmyZEQ6Va6obGtrY2hoSBENbwfZuELuyHSVTXEXt9CA0ujlaZxemEbih1+dy7q58Zw5cwadTkdycjJZWVlBnYztDFkktFotc+fOdfv7OnToEPfffz9//etfycvLC/ja3pRld3V1sXr1avbt20deXh46nS5UjW+qUEwGOjo62LVrFzt37qS1tZWvfOUrXHPNNRQWFiqVgZGRkR53idgPsunv71dKmBMSEnwSDbmPwtnsCnsCafQK08C1y74YhCvv3Vi2bBlmsxmdTkd7e/uI2EwwLQx5/KAkSR5L60tLS7n33nt5/fXXlTLqQPn000/ZunUrb7/9NgBPPfUUAI888ohyzK9+9StaWlp44okngnJNN6hCMdno6urizTff5C9/+QunT58mLCyML33pS/zoRz/yqTBL3h+i0+kwGo0ep1/JyClX+z4Kd/jat+FsNaE8i7K4uHiUBSE3rul0OqXNP1A3Sy51F0J43BhWUVHB3XffzY4dO5g3b57f13TEm7Js2eWorKzEaDTyne98x+W+jgCZ8EIxISszx5OkpCRuvfVWNm3axMaNG5k9ezb19fVcdNFFfOlLX2Ljxo0sX77cYwm44/4QeaJ0VVWVx6VD3pRIy3jb6OVMIGC4QK2hoYFly5Y5rRtx1rgmj9OXa1d8sZiEENTU1HglEidOnODuu+/mlVdeCapIyPfhiOO9WCwWDh8+zDvvvMPAwAAXXnghq1atCvq9TAZUoXCBRqPh4Ycf5oorrgC+mKnxu9/9jvvuu481a9awceNGVq1a5dHS0Gg0pKWlkZaWpoxra2tro7q6moSEBDIyMggPD1faxP0pbLIXDMeN7GlxEYqLYU9rayuNjY0UFxd7VaAWHh5OdnY22dnZSsduQ0OD0vQlW0yuRFTeYm61Wj0uKK6uruaOO+7gT3/604i4QbDwpiw7NzeXtLQ0YmNjiY2N5ZJLLlGsvelGUFwPT9FjF/sWA7jt8WVwcJC///3v7Nixg8OHD7N69WquueYaLrroIp9KwIUQdHd3KwN1UlJSyM7OJi0tLeQrClpaWmhpaaG4uDjgdmi56Uun09HV1aWIn1wcBV+IhNlsprCw0K1I1NXVcfPNN/PCCy84XWgdDLwpyz5x4gRbtmzh7bffxmQysXLlSl555RUWL14c7NuZ+q6H1WrlX/7lX0ZEjzds2DDiU2Cy7lt0RVRUFOvXr2f9+vWYTCbee+89duzYMWKmxiWXXOIxYyBJEhaLhYGBAVavXo3JZFJG9cmrDNztP/GX5uZmWltbWbZsWVAEybHpq7u7G51Ox+nTp5XdokajUWm/dycSDQ0N3HzzzTz33HMhEwkY7m599tln+cpXvqKUZS9atGhEWXZhYSHr1q2jqKgIjUbD3XffHQqRmBQEbFF4Ez3+1re+xaWXXspNN90EwPz583n//ffHZFrzWGKxWPjwww/Zvn07H330kTJT47LLLnOaMWhra+PMmTOjgojOVhnIG8ADHesmzyhdunTpmCxW6u3t5eTJk/T29iqWhmOnqExzczNf+9rX+OUvf8nq1atDem8TjKlvUTjbpehoLTg7prm5ecoJRVhYGJdffjmXX345VquVTz75hJ07d7J161YWLVrEpk2b+PKXv0xMTAyVlZUMDg5SUlIyymKw38l53nnn0dfXp6w3lPtPXL3Z3NHQ0EBnZ6eyDS3USJKEXq8nKiqK888/X5muXlZWBqAEe6Ojo2ltbeWGG27gmWeemW4iMSkIWCi8iR57c8xUQ6vVcskll3DJJZdgs9k4cOAAO3bs4KmnniIuLg6tVsurr77qlVsRGxtLfn4++fn5Slt2WVmZMpzXmxqH+vp6uru7FTN6LKirq6Ovr4/FixcjSRIxMTHMmjWLWbNmKWPzPvnkE/71X/8Vm83G97//fS6++OIxuTcV3whYKLyNHns6Ziqj0WhYtWoVq1at4rHHHuPjjz9m2bJlXHnlleTl5SkzNbxJiUZHR494s+l0OiorK7FarYpoODZx1dbW0tvby5IlS8ZUJIxGoyISjkRGRpKbm0tUVBRJSUmsWbOGv/3tbxw+fFiJE6hMHAKOUXgTPd69ezfPPvsse/bs4fPPP+f+++/nwIEDQbj9yce+fftYu3YtWq1Wmamxfft29uzZQ3p6Ohs3buTqq6/2qtjKHnmWQ1tbG2azWVnw29bWxuDgYMDj+Xyhvr6enp4eFi9e7FaYDAYDmzdv5oc//CHr168HAuvdAO/6NwAOHjzIqlWrePXVV7nuuuv8vl6QmPDmdVDSo56GerjYt+j2nJ7+4H/60594+umnAYiLi+PXv/41S5cu9eZ2JyRy38OOHTuUaU0bNmzg6quv9nmmhlwYVVdXh9lsJicnx+Uqg2Bz5swZurq6PFov3d3dXHvttTz00ENs3rw5KNf2pn9DPm7t2rVERUVx5513qkLhBROyhNubP/j+/fspLCwkOTmZvXv3snXr1kmdcrVHCDFipkZkZCTr16/3eqaGXCJts9koKCigs7OTtrY2+vr6lP4TV1OjAqGhoQGDweBRJIxGI9dddx1btmzhhhtuCNr1vcnAAfz85z8nPDycgwcPcvXVV6tC4QUTcmOr/R6FiIgIZY+CPatXr1bGn61atYqmpqbxuNWQIA9o/bd/+zc++eQTXnjhBQBuv/121q1bx//93//R2NjoNEgsWyYACxYsIDw8nMzMTIqKili5ciXJyck0NTXx2WefUVVVRWdnp9Pz+IqcUfEkEn19fdx4441885vfDKpIgOvsmuMxr7/+Ovfcc09Qrz3VmZAl3N6kXO15/vnn+epXvzoWtzbmSJLErFmzePDBB/nud7+rzNS45557GBwc5Oqrr2bjxo3k5+cr27Ti4uKcznaQVxmkp6cr1ZStra2cPHmSxMREMjMzfd67AcO1GR0dHSxdutTtcwcGBrjxxhu59dZbufXWW/36fbjDm+zaAw88wNNPPx1QDUmgcZTJyIQUCl/Sqe+99x7PP/88H3/8cahva9yRJIns7Gzuu+8+tmzZoszUePDBBzEYDISFhXHppZfygx/8wOML2bGaUi7Brq6uJj4+nszMzBEl2K5oamqivb3do0gMDg7yz//8z1x//fW+7OT0CW+ya4cOHVI2mre3t7Nnzx7CwsLYtGmT19eRf7eff/45g4ODrFixYkzGBY4nEzJG4a2vWVZWxjXXXMPevXunZaOOjMVi4YYbbsBms2EymWhraxsxU8OXTz/7EuyOjg5iY2PJzMx02n/S1NSETqfzWOVpMpm45ZZbuOKKK7jvvvtC9mnsTQbOnttvv92nGIX9TM9du3bxxz/+kTVr1pCSksLNN98cyK1PePNkQloUK1asoKamhrq6OnJycnjllVd4+eWXRxzT0NDA5s2b+cMf/jCtRQKGTfqNGzcqsxK6urr461//yhNPPMGZM2dYu3YtmzZt8qrYSpIkkpKSSEpKUpb1yP0nUVFRimjodDqvRMJsNnPHHXdw6aWXhlQkwLv+DX8QQjAwMMDPfvYzvvnNb5KdnU1jYyO/+MUvaGlpoaamBhj+WYOxOX0iMiEtCvCccr377rvZuXOnspkrLCyMQ4cOuT3nJM2xB4TRaGT37t3s3LmT6upqZabG+eef73Msore3F51OR0tLCxaLhfPOO4/MzEyXzW8Wi4W77rqLZcuW8cgjj0x6v/7f/u3fWLFiBddddx19fX3ExsZSW1vL/v376e7uZtGiRVx66aX+nHrC/2ImrFAEm0mcYw8a/f397N27l507d1JRUaHM1Ljgggu8Du6dPXuWlpYW5s2bp0zwsh/SI/efWK1W7rnnHgoKCti6deukFYna2lp+/OMfk5ycTF9fH//0T/+kxDgAjh07xk033cRdd93F9773PX8vM+F/OdNGKCZxjj0k2M/UOHLkiDJTY/Xq1S77T2SRKC4uHiEs8ioDnU6HwWBg//79NDY2MmvWLJ588slJKxIwPL/0lVdeobe3l2effZb+/n6+//3vk5eXx9q1a2ltbeXNN9/k/vvvB/zOiEz4X9CEjFGEAm+7XF9//XXeffddDh48ONa3OKY4ztR499132blzJw899BAXXHABmzZt4uKLL1bcitbWVpqbm0eJhHyuvLw8ZVL173//e8rLy6mvr2fbtm3ceeed4/EjBowQgsjISL7+9a8Dw+nliooKamtr+eijj4iPj+eyyy5TRMJqtYa8dX+8mDZCMVY59slIREQE69atY926dSNmajzyyCOUlJSQmZmJ0WjkJz/5idtuV5vNxv/8z/8wc+ZMXn/9dbq6uqivrw/4/sarnF9+fchWQnh4OCkpKTz22GPYbLZRMZ4p/boRQrj7N2XYv3+/uOKKK5Svn3zySfHkk0+OOGb27Nli1qxZYtasWSI2Nlakp6eL119/fYzvdOJgsVjE448/LnJzc0VxcbG48cYbxZ///Geh1+tFX1/fiH9Go1F897vfFd/4xjeE1WoN6j3MmTNHnD59WgwNDYmioiJRWVk54phPPvlEdHZ2CiGE2LNnj1i5cmXQrm/PgQMHxIMPPhiKU3t6H477v2ljUXiTcq2rq1P+X86x+1KIM9UQQlBbW0tFRQXx8fEcOHCA7du389RTTzF37lw2bdrEFVdcQWxsLE888QSdnZ08//zzQW1lty/nB5RyfvsgtP2gm1CW8w8ODrJkyZKQnHuiM22EIlQ59gm0li7ohIWF8fvf/175Wp6pYbPZOHr0KNu3b+d///d/MZlMzJs3jx07dgTd/J5I5fwXX3zx9B2s48HkUHGDN2axwWAQhYWF4syZM0IIIdra2sbjVkOG1WoVu3btEkajMSTnf+2118Rdd92lfP3SSy+JLVu2OD323XffFQsWLBDt7e0huZcQMu6uhad/E7J7dLLgTZfryy+/zObNm5V9mSHaXTluaDQaNmzY4NcuEm/wdjpaWVkZd999N7t27SI1NTUk9zKdUYUiALxpa66ursZgMHDppZdy/vnn89JLL431bU5q7GNLJpOJV155hQ0bNow4Ri3nDz3TJkYRCoQXKVd1LV1geBNbeuyxx+jo6ODb3/628hxP5fwqvqEKRQCoa+nGhiuvvJIrr7xyxPfsg8/PPfecsmxYJTSorkcAeGMWb9y4kY8++giLxUJ/fz+ff/45hYWF43THKir+oQpFANibxYWFhXzta19TzGLZNLZfS7dy5Uqv19Lt27eP+fPnU1BQwI9//ONRj3d3d7N+/XqWLl3KokWL2LZtW9B/PhUVmWnTFDaZ8KbT9cknn6S7u5unn34avV7P/PnzaW1t9bjvVGVCMuGbwlSLYgLiTdpVkiSMRqOy3zMlJSXoy4xVVGRUoZiAeJN23bJlCydOnCA7O5slS5bwzDPPjNkWsEDx5FYJIbj//vspKCigqKiII0eOjMNdqtgzOV5ZIUB2uR588EFlae5EwZu069tvv01xcTEtLS2UlpayZcsWenp6xuoW/cZqtfIv//Iv7N27l+PHj/PnP/+Z48ePjzhm79691NTUUFNTw//7f/+Pe++9d5zuVkVm2gqF/MZLTU3l7bffxmaz8Yc//IHt27djs9nG9d68Sbtu27aNzZs3KztA8vPzlX0eExlv3Kpdu3Zx2223IUkSq1atoquri7Nnz47THavANBYKi8UCQFFREW+++SY//elP2bFjB7GxsWg0GqxW67gJhjdp17y8PN555x0A2traOHnypNJhOZHxdkmPp2NUxpZpG/0KCwtjcHCQV155hQMHDvDAAw+wZcsWoqKiGBwcJCoqalzvzVM14n/8x39w++23s2TJEoQQPP3006SlpY3bPXuLN26VN8eojC2e0qNTEkmS0oF/Ah4GdgEbgEuEECZJklKA7wCJwFYhRNe43WiQkSTp98DVgE4IMaqYQxp+Nz4DXAn0A7cLIYIaSZQk6UKGf69fOff1IwBCiKfsjvkt8L4Q4s/nvj4JXCqEUP2PcWK6uh4rga8AdwC/BlqBTEmSJCFEJ/BzYO5UEolzvACsc/P4V4G55/59k+HfTbA5CMyVJClfkqQI4Ebgrw7H/BW4TRpmFdCtisT4Mi1dDyHEbmC3/LUkSWeBLwsh5PLGfwKOnXtMI4QY3+hmkBBCfChJ0mw3h2wEXhLDZuZnkiQlSZI0I5hvUiGERZKkLcDbgBb4vRCiUpKke849/htgD8NWzSmGLZvQ7CBU8ZppKRSSJGmFEFb5ayHEvZIkhZ17LBy4CNguPzwOtzhe5ACNdl83nfteUD/NhRB7GBYD++/9xu7/BfAvwbymSmBMS9fDXiTO+eXyJ10q8EvgNiD73Penk1A4ixhOp59fxQXT0qKwx14IhBAdwDclSVoIxI7fXY0bTcBMu69zgZZxuheVCcS0tChcYWddHBdCTO0NQM5Rg4gqTpn2FoU9U93NkCTpz8ClQJokSU3AfwLhoAYRVdwzLesoVFRUfEN1PVRUVDyiCoWKiopHVKFQUVHxiCoUKioqHlGFQkVFxSOqUKioqHhEFQoVFRWPqEKhoqLikf8PdHpq6C1P0EEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dde.saveplot(losshistory, train_state, issave=True, isplot=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "py3.8",
   "language": "python",
   "name": "py3.8"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
